package com.zengfa.task.api.service;

import com.zengfa.task.api.enums.JobStatus;
import com.zengfa.task.api.model.JobDTO;
import com.zengfa.task.api.model.JobNodeDTO;

/**
 * 服务端接口
 */
public interface ServerApiService {

	/**
	 * 创建任务
	 * @param jobDTO
	 * @return
	 */
	public JobDTO createTask(JobDTO jobDTO);
	
	/**
	 * 重置任务
	 * @param jobId
	 */
	public void resetJob(String jobId);
	
	/**
	 * 获取下个运行节点
	 * @param jobId
	 * @return
	 */
	public JobNodeDTO getNextRunNode(String jobId);
	
	/**
	 * 获取下个运行节点
	 * @param jobId
	 * @return
	 */
	public JobNodeDTO getCurrentRunNode(String jobId);
	
	/**
	 * 启动任务
	 * @param jobId	任务id
	 * @param runIp	执行IP
	 * @return
	public JobNodeDTO startJob(String jobId,String runIp);
	 */
	
	/**
	 * 保存任务节点状态
	 * @return			提交状态成功:true，提交状态失败:false
	 */
	public Boolean saveJobNodeStatus(JobNodeDTO jobNode,JobStatus status,String message);
	
	/**
	 * 保存任务节点状态,单任务使用
	 */
	public Boolean saveJobStatus(JobDTO jobDTO,JobStatus status,String message);
	
	/**
	 * 停止任务
	 */
	public void stopJobByBiz(String bizType,String bizId);
	
	/**
	 * 获得任务
	 * @param jobGroup
	 * @param bizId
	 * @return
	public JobDTO getJob(String jobGroup,String bizId);
	 */
	
	public JobDTO getJob(String jobId);
	
	/**
	 * 保存任务心跳,将在运行中的任务记录下同步时间
	 * @param jobId
	 */
	void saveJobHeartbeat(String jobId);
	
}
